Technical Field
The embodiments herein generally relate to business processes and particularly relates to implementing a processing engine for improving the business processes and services. The embodiments herein more particularly relates to an event driven business rule engine and a method for enhancing the business processes by pre-execution, branch parallelization, branch prediction and branch result caching techniques.
Description of the Related Art
A business rule defines the operations and constraints that are applied to people, processes and computing systems in an organization, and are put in place to help an organization to achieve its goals. These rules are typically executed using forward chaining, backward chaining, RETE or other similar inference rule processing algorithms.
A business process (modeled using BPMN) is a flow-chart like sequence of activities formed by wiring together business rules, sub-processes, invocation of web-services, decision points, events and data. The business service is a mechanism to enable access to one or more capabilities of a software system, where the access is provided using a prescribed interface and is exercised consistently with constraints and policies as specified by the service description.
In a Service Oriented Architecture (SOA), software functionality is exposed as a service along with policies to control its usage. The services can be re-used along with business rules in composing other business services.
An event-driven architecture (EDA) is a software architecture pattern for promoting the production, detection, consumption and reaction to events. The architectural pattern is applied by the design and implementation of applications and systems which transmit events among loosely coupled software components and services. An event-driven system typically consists of event emitters (or agents) and event consumers (or sinks).
The event-driven architecture complements service-oriented architecture (SOA) because services are activated by triggers fired on incoming events. The SOA 2.0 is a combination of SOA and EDA architectures to provide a richer, more robust framework for rule processing.
A business rules engine is a software system that executes one or more business rules in a runtime production environment. The business rule system enables company policies and other operational decisions to be defined, tested, executed and maintained separately from the application code.
Information processing in a business rules engine is typically divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state. Generally transactions support ACID properties—Atomicity, Consistency, Isolation and Durability.
In a typical Rule Engine, execution of a business service or a business process happens using a single thread. This is relatively slow but requires only lower memory usage. An extreme processing environment has a large memory capacity and multi-threading support. In such an environment, the engine takes advantage of the large number of CPU threads available to enhance performance.
Hence, there is a need for a system and method for improving the performance of business processes. There is also a need for an event driven rule chain execution engine for efficiently executing on or more business services. Further, there is a need for providing certain warm-up operations for speeding up the execution of the business process.
The abovementioned shortcomings, disadvantages and problems are addressed herein and which will be understood by reading and studying the following specification.